docs: int fillWindow(CursorWindow window, int startPos, int requiredPos, boolean countAllRows) {
          acquireReference();
          try {
              window.acquireReference();
              try {
                  int numRows = getSession().executeForCursorWindow(getSql(), getBindArgs(),
                          window, startPos, requiredPos, countAllRows, getConnectionFlags(),
                          mCancellationSignal);
                  return numRows;
              } catch (SQLiteDatabaseCorruptException ex) {
                  onCorruption();
                  throw ex;
              } catch (SQLiteException ex) {
                  Log.e(TAG, "exception: " + ex.getMessage() + "; query: " + getSql());
                  throw ex;
              } finally {
                  window.releaseReference();
              }
          } finally {
              releaseReference();
          }
      }