def METHOD_NAME(connection: SnowflakeConnection) -> Engine:
    """
    Create connection
    """
    if not connection.connectionArguments:
        connection.connectionArguments = init_empty_connection_arguments()
    if connection.privateKey:
        snowflake_private_key_passphrase = (
            connection.snowflakePrivatekeyPassphrase.get_secret_value()
            if connection.snowflakePrivatekeyPassphrase
            else ""
        )
        if not snowflake_private_key_passphrase:
            logger.warning(
                "Snowflake Private Key Passphrase not found, replacing it with empty string"
            )
        p_key = serialization.load_pem_private_key(
            bytes(connection.privateKey.get_secret_value(), "utf-8"),
            password=snowflake_private_key_passphrase.encode(),
            backend=default_backend(),
        )
        pkb = p_key.private_bytes(
            encoding=serialization.Encoding.DER,
            format=serialization.PrivateFormat.PKCS8,
            encryption_algorithm=serialization.NoEncryption(),
        )
        connection.connectionArguments.__root__["private_key"] = pkb
    if connection.clientSessionKeepAlive:
        connection.connectionArguments.__root__[
            "client_session_keep_alive"
        ] = connection.clientSessionKeepAlive
    return create_generic_db_connection(
        connection=connection,
        get_connection_url_fn=get_connection_url,
        get_connection_args_fn=get_connection_args_common,
    )