title: Why are all contexts executed when non specified on update?
body: <p>I'm using Liquibase 3.3.5 to update my database. Having contexts is a nice way to only execute specific parts of the changelog. But I don't understand, why ALL changesets are executed, when no context is provided on update. Consider the following example:</p>
  
  <ul>
  <li>changeset A: context=test</li>
  <li>changeset B: no context</li>
  <li>changeset C: context=prod</li>
  </ul>
  
  <p>So</p>
  
  <ul>
  <li>executing update with context=test, will execute changeset A+B.</li>
  <li>executing update with context=prod, will execute changeset B+C.</li>
  <li>executing update with no context, will execute changeset A+B+C.</li>
  </ul>
  
  <p>For me, this doesn't make sense at all :).</p>
  
  <p>I would expect, that only changeset B will be executed, since it doesn't define a specific context.</p>
  
  <p>In the Liquibase contexts example: <a href="http://www.liquibase.org/documentation/contexts.html" rel="noreferrer">http://www.liquibase.org/documentation/contexts.html</a> ("Using Contexts for Test Data") they say, that one should mark the changesets for testing with "test", and executing them with giving the context "test" to apply testdata. Fine - make sense. But</p>
  
  <p>"When it comes time to migrate your production database, don’t include the “test" context, and your test data not be included. "</p>
  
  <p>So, if I wouldn't specify "test" context when executing production update, it <em>would</em> execute the "test" changesets as well, since I didn't specify a context at all.</p>
  
  <p>Again, I would expect that leaving out test on update execution, would only perform the regular changesets <em>without</em> the test changesets.</p>
  
  <p>Or I'm missing something here :)?</p>