code: public void setMaxSqlCacheSize(int cacheSize) {
          if (cacheSize > MAX_SQL_CACHE_SIZE || cacheSize < 0) {
              throw new IllegalStateException(
                      "expected value between 0 and " + MAX_SQL_CACHE_SIZE);
          }
  
          synchronized (mLock) {
              throwIfNotOpenLocked();
  
              final int oldMaxSqlCacheSize = mConfigurationLocked.maxSqlCacheSize;
              mConfigurationLocked.maxSqlCacheSize = cacheSize;
              try {
                  mConnectionPoolLocked.reconfigure(mConfigurationLocked);
              } catch (RuntimeException ex) {
                  mConfigurationLocked.maxSqlCacheSize = oldMaxSqlCacheSize;
                  throw ex;
              }
          }
      }
docs: Sets the maximum size of the prepared-statement cache for this database.
  (size of the cache = number of compiled-sql-statements stored in the cache).
  <p>
  Maximum cache size can ONLY be increased from its current size (default = 10).
  If this method is called with smaller size than the current maximum value,
  then IllegalStateException is thrown.
  <p>
  This method is thread-safe.
  
  @param cacheSize the size of the cache. can be (0 to {@link #MAX_SQL_CACHE_SIZE})
  @throws IllegalStateException if input cacheSize > {@link #MAX_SQL_CACHE_SIZE}.