diff --git a/_modules/helm.py b/_modules/helm.py
index 19be742..23e28c4 100644
--- a/_modules/helm.py
+++ b/_modules/helm.py
@@ -30,6 +30,11 @@
     return __salt__['cmd.retcode'](**cmd) == 0
 
 
+def release_delete(name):
+    cmd = _helm_cmd('delete', '--purge', name)
+    return __salt__['cmd.retcode'](**cmd) == 0
+
+
 def release_upgrade(name, chart_name, version=None, values=None):
     args = []
     if version is not None:
@@ -39,7 +44,7 @@
     cmd = _helm_cmd('upgrade', name, chart_name, *args)
     if values is not None:
         cmd['stdin'] = yaml.serialize(values, default_flow_style=False)
-    LOG.debug('Creating release with args: %s', cmd)
+    LOG.debug('Upgrading release with args: %s', cmd)
     return __salt__['cmd.retcode'](**cmd) == 0
 
 
diff --git a/_states/helm_release.py b/_states/helm_release.py
index 7a40899..d736045 100644
--- a/_states/helm_release.py
+++ b/_states/helm_release.py
@@ -50,3 +50,28 @@
         'result': True,
         'comment': 'Release "{}" was updated'.format(name),
     }
+
+
+def absent(name):
+    exists =  __salt__['helm.release_exists'](name)
+    if not exists:
+        return {
+            'name': name,
+            'changes': {},
+            'result': True,
+            'comment': 'Release "{}" doesn\'t exist'.format(name),
+        }
+    result = __salt__['helm.release_delete'](name)
+    if not result:
+        return {
+            'name': name,
+            'changes': {},
+            'result': False,
+            'comment': 'Failed to delete release "{}"'.format(name),
+        }
+    return {
+        'name': name,
+        'changes': {name: 'DELETED'},
+        'result': True,
+        'comment': 'Release "{}" was deleted'.format(name),
+    }
diff --git a/helm/client.sls b/helm/client.sls
index e51f15c..a4955f7 100644
--- a/helm/client.sls
+++ b/helm/client.sls
@@ -72,6 +72,7 @@
 
 {%- for release_id, release in client.releases.items() %}
 {%- set release_name = release.get('name', release_id) %}
+{%- if release.get('enabled', True) %}
 ensure_{{ release_id }}_release:
   helm_release.present:
     - name: {{ release_name }}
@@ -85,6 +86,11 @@
     {% endif %}
     - require:
       - cmd: wait_for_tiller
-{%- endfor %}
+{%- else %}{# not release.enabled #}
+absent_{{ release_id }}_release:
+  helm_release.absent:
+    - name: {{ release_name }}
+{%- endif %}{# release.enabled #}
+{%- endfor %}{# release_id, release in client.releases #}
 
 {%- endif %}
