diff --git a/frontend/src/metabase/admin/permissions/containers/DataPermissionsApp.jsx b/frontend/src/metabase/admin/permissions/containers/DataPermissionsApp.jsx
index 9cc8f3a18c0dce61951dfaea543326867ff59f81..1d881f1df35ed6fa9556969eb950d302fcaf07ee 100644
--- a/frontend/src/metabase/admin/permissions/containers/DataPermissionsApp.jsx
+++ b/frontend/src/metabase/admin/permissions/containers/DataPermissionsApp.jsx
@@ -4,12 +4,12 @@ import { connect } from "react-redux"
 import PermissionsApp from "./PermissionsApp.jsx";
 
 import { PermissionsApi } from "metabase/services";
-import { loadMetadata } from "../permissions";
+import { fetchDatabases } from "metabase/redux/metadata";
 
-@connect(null, { loadMetadata })
+@connect(null, { fetchDatabases })
 export default class DataPermissionsApp extends Component {
     componentWillMount() {
-        this.props.loadMetadata();
+        this.props.fetchDatabases();
     }
     render() {
         return (
diff --git a/frontend/src/metabase/admin/permissions/permissions.js b/frontend/src/metabase/admin/permissions/permissions.js
index 6fdc64cfe41699c360e012c638e3764502feb375..2dc9ecd15842e0492c44ea2d97377bc4101bdbdc 100644
--- a/frontend/src/metabase/admin/permissions/permissions.js
+++ b/frontend/src/metabase/admin/permissions/permissions.js
@@ -3,7 +3,7 @@ import { createAction, createThunkAction, handleActions, combineReducers } from
 import { canEditPermissions } from "metabase/lib/groups";
 import MetabaseAnalytics from "metabase/lib/analytics";
 
-import { MetabaseApi, PermissionsApi, CollectionsApi } from "metabase/services";
+import { PermissionsApi, CollectionsApi } from "metabase/services";
 
 const RESET = "metabase/admin/permissions/RESET";
 export const reset = createAction(RESET);
@@ -19,10 +19,6 @@ export const initialize = createThunkAction(INITIALIZE, (load, save) =>
     }
 );
 
-// TODO: move these to their respective ducks
-const LOAD_METADATA = "metabase/admin/permissions/LOAD_METADATA";
-export const loadMetadata = createAction(LOAD_METADATA, () => MetabaseApi.db_list_with_tables());
-
 // TODO: move these to their respective ducks
 const LOAD_COLLECTIONS = "metabase/admin/permissions/LOAD_COLLECTIONS";
 export const loadCollections = createAction(LOAD_COLLECTIONS, () => CollectionsApi.list());
@@ -100,10 +96,6 @@ const groups = handleActions({
     },
 }, null);
 
-const databases = handleActions({
-    [LOAD_METADATA]: { next: (state, { payload }) => payload },
-}, null);
-
 const collections = handleActions({
     [LOAD_COLLECTIONS]: { next: (state, { payload }) => payload },
 }, null);
@@ -129,6 +121,5 @@ export default combineReducers({
     revision,
     groups,
 
-    databases,
     collections
 });
diff --git a/frontend/src/metabase/admin/permissions/selectors.js b/frontend/src/metabase/admin/permissions/selectors.js
index 94c1584e9ba33cb8e88477736eca8eb84848d518..2b212a7b67ade21268d5c74219d1d0d4ccc7528c 100644
--- a/frontend/src/metabase/admin/permissions/selectors.js
+++ b/frontend/src/metabase/admin/permissions/selectors.js
@@ -4,14 +4,10 @@ import { createSelector } from 'reselect';
 
 import { push } from "react-router-redux";
 
-import Metadata from "metabase/meta/metadata/Metadata";
 import MetabaseAnalytics from "metabase/lib/analytics";
 
-import type { DatabaseId } from "metabase/meta/types/Database";
-import type { SchemaName } from "metabase/meta/types/Table";
-import type { Group, GroupsPermissions } from "metabase/meta/types/Permissions";
-
 import { isDefaultGroup, isAdminGroup, isMetaBotGroup } from "metabase/lib/groups";
+
 import _ from "underscore";
 import { getIn, assocIn } from "icepick";
 
@@ -28,16 +24,19 @@ import {
     inferAndUpdateEntityPermissions
 } from "metabase/lib/permissions";
 
+import { getMeta } from "metabase/selectors/metadata";
+
+import Metadata from "metabase/meta/metadata/Metadata";
+import type { DatabaseId } from "metabase/meta/types/Database";
+import type { SchemaName } from "metabase/meta/types/Table";
+import type { Group, GroupsPermissions } from "metabase/meta/types/Permissions";
+
 const getPermissions = (state) => state.admin.permissions.permissions;
 const getOriginalPermissions = (state) => state.admin.permissions.originalPermissions;
 
 const getDatabaseId = (state, props) => props.params.databaseId ? parseInt(props.params.databaseId) : null
 const getSchemaName = (state, props) => props.params.schemaName
 
-const getMeta = createSelector(
-    [(state) => state.admin.permissions.databases],
-    (databases) => databases && new Metadata(databases)
-);
 
 // reorder groups to be in this order
 const SPECIAL_GROUP_FILTERS = [isAdminGroup, isDefaultGroup, isMetaBotGroup].reverse();