docs: void collectDbStats(ArrayList<DbStats> dbStatsList) {
          // Get information about the main database.
          int lookaside = nativeGetDbLookaside(mConnectionPtr);
          long pageCount = 0;
          long pageSize = 0;
          try {
              pageCount = executeForLong("PRAGMA page_count;", null, null);
              pageSize = executeForLong("PRAGMA page_size;", null, null);
          } catch (SQLiteException ex) {
              // Ignore.
          }
          dbStatsList.add(getMainDbStatsUnsafe(lookaside, pageCount, pageSize));
  
          // Get information about attached databases.
          // We ignore the first row in the database list because it corresponds to
          // the main database which we have already described.
          CursorWindow window = new CursorWindow("collectDbStats");
          try {
              executeForCursorWindow("PRAGMA database_list;", null, window, 0, 0, false, null);
              for (int i = 1; i < window.getNumRows(); i++) {
                  String name = window.getString(i, 1);
                  String path = window.getString(i, 2);
                  pageCount = 0;
                  pageSize = 0;
                  try {
                      pageCount = executeForLong("PRAGMA " + name + ".page_count;", null, null);
                      pageSize = executeForLong("PRAGMA " + name + ".page_size;", null, null);
                  } catch (SQLiteException ex) {
                      // Ignore.
                  }
                  String label = "  (attached) " + name;
                  if (!path.isEmpty()) {
                      label += ": " + path;
                  }
                  dbStatsList.add(new DbStats(label, pageCount, pageSize, 0, 0, 0, 0));
              }
          } catch (SQLiteException ex) {
              // Ignore.
          } finally {
              window.close();
          }
      }