code: public Cursor rawQuery(String sql, String[] makeArgListQueryString) throws SQLException {
      Log.v("SQLiteDatabase rawQuery: " + Thread.currentThread().getId() + " \"" + Thread.currentThread().getName() + "\" " + sql);
      long timeNow = System.currentTimeMillis();
      long delta = 0;
      do {
        try {
          Cursor cursor = sqliteDatabase.rawQuery(sql, makeArgListQueryString);
          Log.v("SQLiteDatabase rawQuery OK: " + Thread.currentThread().getId() + " \"" + Thread.currentThread().getName() + "\" " + sql);
          return cursor;
        } catch (SQLiteException e) {
          if ( isLockedException(e) ) {
            delta = System.currentTimeMillis() - timeNow;
          } else {
            throw SQLDroidConnection.chainException(e);
          }
        }
      } while (delta < timeout);
      throw new SQLException ("Timeout Expired");
    }
docs: Proxy for the "rawQuery" command.
  @throws SQLException