@Override
  public <R, E extends Throwable> R readRecord(int recordId,
                                               @NotNull RecordReader<R, E> reader) throws E, IOException {
    long recordOffsetInFile = recordOffsetInFile(recordId);
    int recordOffsetOnPage = storage.toOffsetInPage(recordOffsetInFile);
    Page page = storage.pageByOffset(recordOffsetInFile);
    RecordAccessor recordAccessor = new RecordAccessor(recordId, recordOffsetOnPage, page, this);
    return reader.readRecord(recordAccessor);
  }
@Override
  public <R, E extends Throwable> R readRecord(int recordId,
                                               @NotNull RecordReader<R, E> reader)