@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
		{
			if (this.actionOnUpgrade != null)
			{
				try
				{
					/*
					 * Use reflection to get and instantiate the SQLite Database, the old verion number, and the new
					 * version number, as defined by the user in the Runnable parameter passed to the createDb(String
					 * dbName, Runnable actionOnUpgrade) method of the Dbtool instance.
					 */
					Class<?> actionClass = actionOnUpgrade.getClass();
					Field[] fields = actionClass.getFields();
					for (Field field : fields)
					{
						if (field.getType() == Class.forName("android.database.sqlite.SQLiteDatabase"))
						{
							field.set(actionOnUpgrade, db);
						}

						if (field.getType() == Class.forName("java.lang.Integer"))
						{
							if (field.getName() == "oldVersion")
							{
								field.set(actionOnUpgrade, oldVersion);
							}
							if (field.getName() == "newVersion")
							{
								field.set(actionOnUpgrade, newVersion);
							}
						}
					}
					this.actionOnUpgrade.run();
				}
				catch (ClassNotFoundException ex)
				{
					// No SQLiteDatabase field in the runnable. Assume user does
					// not need to use any.
				}
				catch (Exception ex)
				{
					// Other error.
				}
			}
		}