code: @Override
    public InStore openRead(long address, int size)
    {
      if (fileSize() < address + size) {
        throw new IllegalStateException(L.l("{0} read open for length {1}:{2} but file length {3}",
                                  this, address, size, fileSize()));
      }
  
      if (_isClosed.get()) {
        throw new IllegalStateException(L.l("{0} is closed.", this));
      }
      
      if (_fileSize < address + size) {
        throw new IllegalStateException(L.l("Open read of large file {0}:{1}",
                                            Long.toHexString(address), size));
      }
      
      try {
        streamOpen(address, size);
        
        return openReadImpl(address, size);
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
    }
docs: Opens the underlying file to the database.