docs: public Cursor queryWithFactory(CursorFactory cursorFactory,
              boolean distinct, String table, String[] columns,
              String selection, String[] selectionArgs, String groupBy,
              String having, String orderBy, String limit, CancellationSignal cancellationSignal) {
          acquireReference();
          try {
              String sql = SQLiteQueryBuilder.buildQueryString(
                      distinct, table, columns, selection, groupBy, having, orderBy, limit);
  
              return rawQueryWithFactory(cursorFactory, sql, selectionArgs,
                      findEditTable(table), cancellationSignal);
          } finally {
              releaseReference();
          }
      }