docs: private SQLiteConnection tryAcquireNonPrimaryConnectionLocked(
              String sql, int connectionFlags) {
          // Try to acquire the next connection in the queue.
          SQLiteConnection connection;
          final int availableCount = mAvailableNonPrimaryConnections.size();
          if (availableCount > 1 && sql != null) {
              // If we have a choice, then prefer a connection that has the
              // prepared statement in its cache.
              for (int i = 0; i < availableCount; i++) {
                  connection = mAvailableNonPrimaryConnections.get(i);
                  if (connection.isPreparedStatementInCache(sql)) {
                      mAvailableNonPrimaryConnections.remove(i);
                      finishAcquireConnectionLocked(connection, connectionFlags); // might throw
                      return connection;
                  }
              }
          }
          if (availableCount > 0) {
              // Otherwise, just grab the next one.
              connection = mAvailableNonPrimaryConnections.remove(availableCount - 1);
              finishAcquireConnectionLocked(connection, connectionFlags); // might throw
              return connection;
          }
  
          // Expand the pool if needed.
          int openConnections = mAcquiredConnections.size();
          if (mAvailablePrimaryConnection != null) {
              openConnections += 1;
          }
          if (openConnections >= mMaxConnectionPoolSize) {
              return null;
          }
          connection = openConnectionLocked(mConfiguration,
                  false /*primaryConnection*/); // might throw
          finishAcquireConnectionLocked(connection, connectionFlags); // might throw
          return connection;
      }