public override unsafe global::Com.Facebook.Stetho.Inspector.Protocol.Module.Database.ExecuteSQLResponse ExecuteSQL(string p0, string p1, global::Com.Facebook.Stetho.Inspector.Protocol.Module.Database.DatabaseDriver.IExecuteResultHandler p2)
        {
            if (id_executeSQL_Ljava_lang_String_Ljava_lang_String_Lcom_facebook_stetho_inspector_protocol_module_Database_DatabaseDriver_ExecuteResultHandler_ == IntPtr.Zero)
            {
                id_executeSQL_Ljava_lang_String_Ljava_lang_String_Lcom_facebook_stetho_inspector_protocol_module_Database_DatabaseDriver_ExecuteResultHandler_ = JNIEnv.GetMethodID(class_ref, "executeSQL", "(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/stetho/inspector/protocol/module/Database$DatabaseDriver$ExecuteResultHandler;)Lcom/facebook/stetho/inspector/protocol/module/Database$ExecuteSQLResponse;");
            }
            IntPtr native_p0 = JNIEnv.NewString(p0);
            IntPtr native_p1 = JNIEnv.NewString(p1);

            try {
                JValue *__args = stackalloc JValue [3];
                __args [0] = new JValue(native_p0);
                __args [1] = new JValue(native_p1);
                __args [2] = new JValue(p2);

                global::Com.Facebook.Stetho.Inspector.Protocol.Module.Database.ExecuteSQLResponse __ret;
                if (GetType() == ThresholdType)
                {
                    __ret = global::Java.Lang.Object.GetObject <global::Com.Facebook.Stetho.Inspector.Protocol.Module.Database.ExecuteSQLResponse> (JNIEnv.CallObjectMethod(((global::Java.Lang.Object) this).Handle, id_executeSQL_Ljava_lang_String_Ljava_lang_String_Lcom_facebook_stetho_inspector_protocol_module_Database_DatabaseDriver_ExecuteResultHandler_, __args), JniHandleOwnership.TransferLocalRef);
                }
                else
                {
                    __ret = global::Java.Lang.Object.GetObject <global::Com.Facebook.Stetho.Inspector.Protocol.Module.Database.ExecuteSQLResponse> (JNIEnv.CallNonvirtualObjectMethod(((global::Java.Lang.Object) this).Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "executeSQL", "(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/stetho/inspector/protocol/module/Database$DatabaseDriver$ExecuteResultHandler;)Lcom/facebook/stetho/inspector/protocol/module/Database$ExecuteSQLResponse;"), __args), JniHandleOwnership.TransferLocalRef);
                }
                return(__ret);
            } finally {
                JNIEnv.DeleteLocalRef(native_p0);
                JNIEnv.DeleteLocalRef(native_p1);
            }
        }
        static IntPtr n_ExecuteSQL_Ljava_lang_String_Ljava_lang_String_Lcom_facebook_stetho_inspector_protocol_module_Database_DatabaseDriver_ExecuteResultHandler_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
        {
            global::Com.Facebook.Stetho.Inspector.Database.SqliteDatabaseDriver __this = global::Java.Lang.Object.GetObject <global::Com.Facebook.Stetho.Inspector.Database.SqliteDatabaseDriver> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            string p0 = JNIEnv.GetString(native_p0, JniHandleOwnership.DoNotTransfer);
            string p1 = JNIEnv.GetString(native_p1, JniHandleOwnership.DoNotTransfer);

            global::Com.Facebook.Stetho.Inspector.Protocol.Module.Database.DatabaseDriver.IExecuteResultHandler p2 = (global::Com.Facebook.Stetho.Inspector.Protocol.Module.Database.DatabaseDriver.IExecuteResultHandler)global::Java.Lang.Object.GetObject <global::Com.Facebook.Stetho.Inspector.Protocol.Module.Database.DatabaseDriver.IExecuteResultHandler> (native_p2, JniHandleOwnership.DoNotTransfer);
            IntPtr __ret = JNIEnv.ToLocalJniHandle(__this.ExecuteSQL(p0, p1, p2));

            return(__ret);
        }