public static Optional<DatabaseAdminExecutor> tryGetSystemVariableQueryExecutor(final SelectStatement selectStatement) {
        Collection<ProjectionSegment> projections = selectStatement.getProjections().getProjections();
        List<ExpressionProjectionSegment> expressionProjectionSegments = new ArrayList<>(projections.size());
        List<MySQLSystemVariable> variables = new ArrayList<>(projections.size());
        for (ProjectionSegment each : projections) {
            if (!(each instanceof ExpressionProjectionSegment)) {
                return Optional.empty();
            }
            ExpressionProjectionSegment expression = (ExpressionProjectionSegment) each;
            if (!(expression.getExpr() instanceof VariableSegment)) {
                return Optional.empty();
            }
            expressionProjectionSegments.add(expression);
            VariableSegment variable = (VariableSegment) expression.getExpr();
            Optional<MySQLSystemVariable> systemVariable = MySQLSystemVariable.findSystemVariable(variable.getVariable());
            if (!systemVariable.isPresent()) {
                return Optional.empty();
            }
            variables.add(systemVariable.get());
        }
        return Optional.of(new MySQLSystemVariableQueryExecutor(expressionProjectionSegments, variables));
    }
@Test
    void assertTryGetSystemVariableQueryExecutorWithUnknownVariable() {
        MySQLSelectStatement selectStatement = new MySQLSelectStatement();
        selectStatement.setProjections(new ProjectionsSegment(0, 0));
        selectStatement.getProjections().getProjections().add(new ExpressionProjectionSegment(0, 0, "@@unknown_variable", new VariableSegment(0, 0, "unknown_variable")));
        assertFalse(MySQLSystemVariableQueryExecutor.tryGetSystemVariableQueryExecutor(selectStatement).isPresent());
    }