I used the below macro and it worked - used Delete instead of Truncate,
{% macro delete_existing_records(table_name, ref_table_name, max_meta_inserted_at) %}
{% if execute %}
{% set table_exists_query %}
SELECT COUNT(*)
FROM `{{ table_name.project }}.{{ table_name.dataset }}.__TABLES__`
WHERE table_id = '{{ table_name.name }}'
{% endset %}
{% set table_exists = dbt_utils.get_single_value(table_exists_query) | int %}
{{ log("Table exists value: " ~ table_exists, info=True) }}
{% if table_exists > 0 %}
{{ log("Deleting records from table: " ~ table_name, info=True) }}
{%- call statement('delete_records', fetch_result=True) -%}
DELETE FROM {{ table_name }} WHERE <some_condition>;
{%- endcall -%}
{%- set delete_result = load_result('delete_records') -%}
{{ log(delete_result['response'].rows_affected ~ ' rows deleted', info=True) }}
-- Add this to verify the execution continues
{{ log("Successfully executed DELETE on: " ~ table_name, info=True) }}
{% else %}
{{ log("Table does not exist: " ~ table_name, info=True) }}
{% endif %}
{% endif %}
{% endmacro %}