docs: public boolean enableWriteAheadLogging() {
          synchronized (mLock) {
              throwIfNotOpenLocked();
  
              if ((mConfigurationLocked.openFlags & ENABLE_WRITE_AHEAD_LOGGING) != 0) {
                  return true;
              }
  
              if (isReadOnlyLocked()) {
                  // WAL doesn't make sense for readonly-databases.
                  // TODO: True, but connection pooling does still make sense...
                  return false;
              }
  
              if (mConfigurationLocked.isInMemoryDb()) {
                  Log.i(TAG, "can't enable WAL for memory databases.");
                  return false;
              }
  
              // make sure this database has NO attached databases because sqlite's write-ahead-logging
              // doesn't work for databases with attached databases
              if (mHasAttachedDbsLocked) {
                  if (Log.isLoggable(TAG, Log.DEBUG)) {
                      Log.d(TAG, "this database: " + mConfigurationLocked.label
                              + " has attached databases. can't  enable WAL.");
                  }
                  return false;
              }
  
              mConfigurationLocked.openFlags |= ENABLE_WRITE_AHEAD_LOGGING;
              try {
                  mConnectionPoolLocked.reconfigure(mConfigurationLocked);
              } catch (RuntimeException ex) {
                  mConfigurationLocked.openFlags &= ~ENABLE_WRITE_AHEAD_LOGGING;
                  throw ex;
              }
          }
          return true;
      }