@Override
    public ResponseHeader execute() throws SQLException {
        String originalDatabaseName = connectionSession.getCurrentDatabaseName();
        String unicastDatabaseName = null == originalDatabaseName ? getFirstDatabaseName() : originalDatabaseName;
        ShardingSpherePreconditions.checkState(ProxyContext.getInstance().getContextManager().getDatabase(unicastDatabaseName).containsDataSource(),
                () -> new EmptyStorageUnitException(unicastDatabaseName));
        try {
            connectionSession.setCurrentDatabaseName(unicastDatabaseName);
            databaseConnector = databaseConnectorFactory.newInstance(queryContext, connectionSession.getDatabaseConnectionManager(), false);
            return databaseConnector.execute();
        } finally {
            connectionSession.setCurrentDatabaseName(originalDatabaseName);
        }
    }
@Test
    void assertExecuteDatabaseBackendHandler() throws SQLException {
        ContextManager contextManager = mockContextManager();
        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
        ShardingSphereDatabase database = createDatabases().get("db_0");
        when(contextManager.getDatabase("db_0")).thenReturn(database);
        ResponseHeader actual = unicastDatabaseBackendHandler.execute();
        assertThat(actual, instanceOf(UpdateResponseHeader.class));
    }