xRead method
Fill the target with bytes read from fileOffset.
If the file is not large enough to fullfill the read, a VfsException
with an error code of SqlExtendedError.SQLITE_IOERR_SHORT_READ must be
thrown. Additional, the rest of target must be filled with zeroes.
Safety warning: Target may be a direct view over native memory that must not be used after this function returns.
Implementation
@override
void xRead(Uint8List target, int fileOffset) {
  final bytesRead = readInto(target, fileOffset);
  if (bytesRead < target.length) {
    // Remaining buffer must be filled with zeroes.
    target.fillRange(bytesRead, target.length, 0);
    // And we need to return a short read error
    throw const VfsException(SqlExtendedError.SQLITE_IOERR_SHORT_READ);
  }
}