"GHOST" sample() function inside uvm_reg_block.svh!

This is the sample function definition of uvm_reg_block.svh
// Function: sample
//
// Functional coverage measurement method
//
// This method is invoked by the block abstraction class
// whenever an address within one of its address map
// is succesfully read or written.
// The specified offset is the offset within the block,
// not an absolute address.
//
// Empty by default, this method may be extended by the
// abstraction class generator to perform the required sampling
// in any provided functional coverage model.
//
protected virtual function void sample(uvm_reg_addr_t offset,
bit is_read,
uvm_reg_map map);
endfunction

I have extended my register block from uvm_reg_block and overwritten the sample function.
But I did not call the sample function but still my covergroups were sampled.
Can you please explain who invoked the sample function?