@Override
    public ResponseHeader execute() throws SQLException {
        check(sqlStatement, connectionSession.getConnectionContext().getGrantee());
        if (isDropCurrentDatabase(sqlStatement.getDatabaseName())) {
            checkSupportedDropCurrentDatabase(connectionSession);
            connectionSession.setCurrentDatabaseName(null);
        }
        if (ProxyContext.getInstance().databaseExists(sqlStatement.getDatabaseName())) {
            ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(sqlStatement.getDatabaseName());
        }
        return new UpdateResponseHeader(sqlStatement);
    }
@Test
    void assertExecuteDropNotExistDatabase() {
        when(sqlStatement.getDatabaseName()).thenReturn("test_not_exist_db");
        assertThrows(DatabaseDropNotExistsException.class, () -> handler.execute());
    }