code: int readCheckpoint(ReadStream is, 
                       byte[] blockBuffer,
                       int rowOffset,
                       int blobTail)
      throws IOException
    {
      int rowLength = length();
      
      if (rowOffset < blobTail) {
        return -1;
      }
      
      for (Column column : columns()) {
        blobTail = column.readCheckpoint(is, 
                                         blockBuffer, 
                                         rowOffset, rowLength, 
                                         blobTail);
      }
      
      return blobTail;
    }
docs: Reads column-specific data like blobs from the checkpoint.
  
  Returns -1 if the data does not fit into the current block.