constructor(options: DatabaseProps): void {
    const { adapter, modelClasses } = options
    if (process.env.NODE_ENV !== 'production') {
      invariant(adapter, `Missing adapter parameter for new Database()`)
      invariant(
        modelClasses && Array.isArray(modelClasses),
        `Missing modelClasses parameter for new Database()`,
      )
    }
    this.adapter = new DatabaseAdapterCompat(adapter)
    this.schema = adapter.schema
    this.collections = new CollectionMap(this, modelClasses)
  }
Database's adapter - the low-level connection with the underlying database (e.g. SQLite)

Unless you understand WatermelonDB's internals, you SHOULD NOT use adapter directly.
Running queries, or updating/deleting records on the adapter will corrupt the in-memory cache
if special care is not taken