docs: void reconfigure(SQLiteDatabaseConfiguration configuration) {
          mOnlyAllowReadOnlyOperations = false;
  
          // Register custom functions.
          final int functionCount = configuration.customFunctions.size();
          for (int i = 0; i < functionCount; i++) {
              SQLiteCustomFunction function = configuration.customFunctions.get(i);
              if (!mConfiguration.customFunctions.contains(function)) {
                  nativeRegisterCustomFunction(mConnectionPtr, function);
              }
          }
  
          // Remember what changed.
          boolean foreignKeyModeChanged = configuration.foreignKeyConstraintsEnabled
                  != mConfiguration.foreignKeyConstraintsEnabled;
          boolean walModeChanged = ((configuration.openFlags ^ mConfiguration.openFlags)
                  & SQLiteDatabase.ENABLE_WRITE_AHEAD_LOGGING) != 0;
          boolean localeChanged = !configuration.locale.equals(mConfiguration.locale);
  
          // Update configuration parameters.
          mConfiguration.updateParametersFrom(configuration);
  
          // Update prepared statement cache size.
          // sqlite.org: android.util.LruCache.resize() requires API level 21.
          // mPreparedStatementCache.resize(configuration.maxSqlCacheSize);
  
          // Update foreign key mode.
          if (foreignKeyModeChanged) {
              setForeignKeyModeFromConfiguration();
          }
  
          // Update WAL.
          if (walModeChanged) {
              setWalModeFromConfiguration();
          }
  
          // Update locale.
          if (localeChanged) {
              setLocaleFromConfiguration();
          }
      }