diff --git a/_modules/helm.py b/_modules/helm.py
index b849676..19be742 100644
--- a/_modules/helm.py
+++ b/_modules/helm.py
@@ -28,3 +28,21 @@
         cmd['stdin'] = yaml.serialize(values, default_flow_style=False)
     LOG.debug('Creating release with args: %s', cmd)
     return __salt__['cmd.retcode'](**cmd) == 0
+
+
+def release_upgrade(name, chart_name, version=None, values=None):
+    args = []
+    if version is not None:
+        args += ['--version', version]
+    if values is not None:
+        args += ['--values', '/dev/stdin']
+    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)
+    return __salt__['cmd.retcode'](**cmd) == 0
+
+
+def get_values(name):
+    cmd = _helm_cmd('get', 'values', '--all', name)
+    return yaml.deserialize(__salt__['cmd.run_stdout'](**cmd))
diff --git a/_states/helm_release.py b/_states/helm_release.py
index d5272c0..c3b70a3 100644
--- a/_states/helm_release.py
+++ b/_states/helm_release.py
@@ -1,6 +1,9 @@
+import difflib
 import logging
 
-def present(name, chart_name, version=None, values=None, logLevel=None):
+from salt.serializers import yaml
+
+def present(name, chart_name, version=None, values=None):
     exists =  __salt__['helm.release_exists'](name)
     if not exists:
         result = __salt__['helm.release_create'](
@@ -19,9 +22,31 @@
                 'result': False,
                 'comment': 'Failed to create release "{}"'.format(name),
             }
+    old_values = __salt__['helm.get_values'](name)
+    result = __salt__['helm.release_upgrade'](
+        name, chart_name, version, values)
+    if not result:
+        return {
+            'name': name,
+            'changes': {},
+            'result': False,
+            'comment': 'Failed to create release "{}"'.format(name),
+        }
+    new_values = __salt__['helm.get_values'](name)
+    if new_values == old_values:
+        return {
+            'name': name,
+            'changes': {},
+            'result': True,
+            'comment': 'Release "{}" already exists'.format(name),
+        }
+    old_str = yaml.serialize(old_values, default_flow_style=False)
+    new_str = yaml.serialize(new_values, default_flow_style=False)
+    diff = difflib.unified_diff(
+        old_str.split('\n'), new_str.split('\n'), lineterm='')
     return {
         'name': name,
-        'changes': {},
+        'changes': {'values': '\n'.join(diff)},
         'result': True,
         'comment': 'Release "{}" already exists'.format(name),
     }
