public function save()
 {
     $grants = new \WordPress\Tabulate\DB\Grants();
     // Validate the POSTed grants.
     $new_grants = array();
     foreach ($_POST as $table => $table_grants) {
         if (in_array($table, $this->table_names)) {
             $new_grants[$table] = array();
             foreach ($table_grants as $capability => $roles) {
                 if (in_array($capability, $grants->get_capabilities())) {
                     $new_grants[$table][$capability] = array_keys($roles);
                 }
             }
         }
     }
     // Save the grants and return to the granting table.
     $grants->set($new_grants);
     $this->template->add_notice('updated', 'Grants saved.');
     wp_redirect($this->get_url('index'));
     exit;
 }
<?php

if (!defined('ABSPATH') || !defined('WP_UNINSTALL_PLUGIN')) {
    return false;
}
// Clear Grants' option.
$grants = new \WordPress\Tabulate\DB\Grants();
$grants->delete();
// Drop the ChangeTracker's and Reports' tables.
global $wpdb;
$wpdb->query('SET FOREIGN_KEY_CHECKS = 0');
foreach (\WordPress\Tabulate\DB\ChangeTracker::table_names() as $tbl) {
    $wpdb->query("DROP TABLE IF EXISTS `{$tbl}`;");
}
$wpdb->query("DROP TABLE IF EXISTS `" . \WordPress\Tabulate\DB\Reports::reports_table_name() . "`;");
$wpdb->query("DROP TABLE IF EXISTS `" . \WordPress\Tabulate\DB\Reports::report_sources_table_name() . "`;");
$wpdb->query('SET FOREIGN_KEY_CHECKS = 1');