Hi, I may have found a bug. 

ClickHouse client version 21.10.1.8013 (official build).

```
CREATE FUNCTION now_debug AS () -> toDateTime('2021-07-01 12:35:34');
```

```
:) select now_debug() as _now_debug, now() as _now;

SELECT
    now_debug() AS _now_debug,
    now() AS _now

Query id: 4f7840e9-4a92-4d16-a33e-a307af1316d2

┌─toDateTime('2021-07-01 12:35:34')─┬────────────────_now─┐
│               2021-07-01 12:35:34 │ 2021-10-10 19:50:44 │
└───────────────────────────────────┴─────────────────────┘

1 rows in set. Elapsed: 0.002 sec.
```

Expected _now_debug, result toDateTime('2021-07-01 12:35:34')

{
    return true;
}
ASTPtr UserDefinedSQLFunctionMatcher::tryToReplaceFunction(const ASTFunction & function)
{
    auto user_defined_function = UserDefinedSQLFunctionFactory::instance().tryGet(function.name);
    if (!user_defined_function)
        return nullptr;
    const auto & function_arguments_list = function.children.at(0)->as<ASTExpressionList>();
    auto & function_arguments = function_arguments_list->children;
    const auto & create_function_query = user_defined_function->as<ASTCreateFunctionQuery>();
    auto & function_core_expression = create_function_query->function_core->children.at(0);
    const auto & identifiers_expression_list = function_core_expression->children.at(0)->children.at(0)->as<ASTExpressionList>();
    const auto & identifiers_raw = identifiers_expression_list->children;
    if (function_arguments.size() != identifiers_raw.size())
        throw Exception(ErrorCodes::UNSUPPORTED_METHOD,
            "Function {} expects {} arguments actual arguments {}",
            create_function_query->function_name,
            identifiers_raw.size(),
            function_arguments.size());
    std::unordered_map<std::string, ASTPtr> identifier_name_to_function_argument;
    for (size_t parameter_index = 0; parameter_index < identifiers_raw.size(); ++parameter_index)